/* GNU Mailutils -- a suite of utilities for electronic mail
   Copyright (C) 1999, 2000, 2001, 2005, 2007 Free Software Foundation, Inc.

   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 3 of the License, or (at your option) any later version.

   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General
   Public License along with this library; if not, write to the
   Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
   Boston, MA 02110-1301 USA */

#ifndef TIMER_H
#define TIMER_H
#include <iostream>

/**
 * \file timer.h
 * \author Ice and Magic
 * \date 21 Avril 2011
 *
 */

/**
 *  \brief Cette classe se voulait comme agrégatrice de plusieurs types de mesures.
 *
 */
class	timer{
private:
void	print_machine();
void	print_humain_friendly();

	public:
long long	cycle_start;
long long	cycle_end;

double		clock_start;
double		clock_end;

double		tod_start;
double		tod_end;

	public:
timer();
~timer();
inline 	double	elapsed(long long&, double&,double&);
double	start();
double	end();
void	print(bool humain=true);
};

std::ostream&	operator<<(std::ostream&,const timer&);

#endif
